
// Generated from /home/chh/gitprojects/plc2llvm/grammar/PLCSTLexer.g4 by ANTLR 4.11.1

#pragma once


#include "antlr4-runtime.h"


namespace plcst {


class  PLCSTLexer : public antlr4::Lexer {
public:
  enum {
    Unsigned_Int = 1, Signed_Int = 2, Binary_Int = 3, Octal_Int = 4, Hex_Int = 5, 
    Science_real = 6, Const_bool = 7, S_Byte_Char_Str = 8, D_Byte_Char_Str = 9, 
    Duration = 10, Interval = 11, Days = 12, Hours = 13, Minutes = 14, Seconds = 15, 
    Milliseconds = 16, Microseconds = 17, Nanoseconds = 18, Time_Of_Day = 19, 
    Daytime = 20, Day_Hour = 21, Day_Minute = 22, Day_Second = 23, Date = 24, 
    Date_Literal = 25, Year = 26, Month = 27, Day = 28, Date_And_Time = 29, 
    Int_Type_Name = 30, Real_Type_Name = 31, CHAR = 32, WCHAR = 33, SString_Type_Name = 34, 
    WString_Type_Name = 35, Time_Type_Name = 36, Date_Type_Name = 37, Bool_Type_Name = 38, 
    Multibits_Type_Name = 39, TYPE = 40, END_TYPE = 41, ARRAY = 42, OF = 43, 
    STRUCT = 44, END_STRUCT = 45, OVERLAP = 46, Direct_Variable = 47, REF_TO = 48, 
    Null = 49, REF = 50, THIS = 51, VAR_INPUT = 52, END_VAR = 53, RETAIN = 54, 
    NON_RETAIN = 55, R_EDGE = 56, F_EDGE = 57, VAR_OUTPUT = 58, VAR_IN_OUT = 59, 
    VAR = 60, CONSTANT = 61, VAR_TEMP = 62, VAR_EXTERNAL = 63, VAR_GLOBAL = 64, 
    AT = 65, STRING = 66, WSTRING = 67, Var_Location = 68, Std_Func_Name = 69, 
    FUNCTION = 70, END_FUNCTION = 71, Std_FB_Name = 72, FUNCTION_BLOCK = 73, 
    FINAL = 74, ABSTRACT = 75, EXTENDS = 76, IMPLEMENTS = 77, END_FUNCTION_BLOCK = 78, 
    METHOD = 79, END_METHOD = 80, OVERRIDE = 81, CLASS = 82, END_CLASS = 83, 
    INTERFACE = 84, END_INTERFACE = 85, PUBLIC = 86, PROTECTED = 87, PRIVATE = 88, 
    PROGRAM = 89, END_PROGRAM = 90, VAR_ACCESS = 91, INITIAL_STEP = 92, 
    END_STEP = 93, STEP = 94, ACTION_QUALIFIER = 95, ACTION_TIME_QUALIFIER = 96, 
    TRANSITION = 97, END_TRANSITION = 98, PRIORITY = 99, FROM = 100, ACTION = 101, 
    END_ACTION = 102, CONFIGURATION = 103, END_CONFIGURATION = 104, RESOURCE = 105, 
    ON = 106, END_RESOURCE = 107, Access_Direction = 108, TASK = 109, INTERVAL = 110, 
    SINGLE = 111, WITH = 112, VAR_CONFIG = 113, NAMESPACE = 114, INTERNAL = 115, 
    END_NAMESPACE = 116, USING = 117, OR = 118, XOR = 119, AND = 120, MOD = 121, 
    NOT = 122, Multibit_Part_Access = 123, SUPER = 124, RETURN = 125, IF = 126, 
    THEN = 127, ELSIF = 128, ELSE = 129, END_IF = 130, CASE = 131, END_CASE = 132, 
    EXIT = 133, CONTINUE = 134, FOR = 135, DO = 136, END_FOR = 137, TO = 138, 
    BY = 139, WHILE = 140, END_WHILE = 141, REPEAT = 142, UNTIL = 143, END_REPEAT = 144, 
    Identifier = 145, Whitespace = 146, Newline = 147, BlockComment = 148, 
    LineComment = 149, Dot = 150, Semi = 151, Colon = 152, Assign = 153, 
    LeftParen = 154, RightParen = 155, RangeDot = 156, Caret = 157, Comma = 158, 
    Underline = 159, TypeSign = 160, LeftBracket = 161, RightBracket = 162, 
    StarStar = 163, AndSign = 164, Equal = 165, NotEqual = 166, Less = 167, 
    Greater = 168, LessEqual = 169, GreaterEqual = 170, Plus = 171, Minus = 172, 
    Div = 173, QuestionEqual = 174, LeftAssign = 175, Star = 176
  };

  explicit PLCSTLexer(antlr4::CharStream *input);

  ~PLCSTLexer() override;


  std::string getGrammarFileName() const override;

  const std::vector<std::string>& getRuleNames() const override;

  const std::vector<std::string>& getChannelNames() const override;

  const std::vector<std::string>& getModeNames() const override;

  const antlr4::dfa::Vocabulary& getVocabulary() const override;

  antlr4::atn::SerializedATNView getSerializedATN() const override;

  const antlr4::atn::ATN& getATN() const override;

  // By default the static state used to implement the lexer is lazily initialized during the first
  // call to the constructor. You can call this function if you wish to initialize the static state
  // ahead of time.
  static void initialize();

private:

  // Individual action functions triggered by action() above.

  // Individual semantic predicate functions triggered by sempred() above.

};

}  // namespace plcst
